// functions.h 

#include "includes.h"

Move best_move(board *, TTable *, ZobristTable *);
Move best_move_old(board *);
int calculate_board(board *);
int checkBoard(board *);
int collideBlack(board *, unsigned int);
int collideWhite(board *, unsigned int);
int debug (int, char *);
unsigned int decodeString(char *);
int dumpBoard(board *);
PIECES erase(board *, unsigned int);
PIECES findPiece(board *, unsigned int);
int humanMove(board *, char *, ZobristTable *);
int isGameOver(board *);
std::list<unsigned int> listPieces(unsigned int);
undoer move(board *, Move, ZobristTable *);
int negamax(board *, int, int, int, int *, TTable *, ZobristTable *);
int negamax_old(board *, int, int *);
int newBoard(board *, ZobristTable *);
int printBoard(board *); 
void printMask(unsigned int); 
void printMove(Move);
int printSpace(unsigned int);
void printUsage();
char returnPiece(board *, unsigned int);
int unmove(board * , Move, undoer);


